﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SistemaVarejo.Model;
using System.Data.Entity;
using System.Data;

namespace SistemaVarejo.DAO
{
    class ProdutoDAO
    {
        public static bool incluir(Produto p) {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            try
            {
                db.Produtos.Add(p);
                db.SaveChanges();
                return true;
            }
            catch {
                return false;
            }
        }

        public static Produto ConsultaNome(Produto p) {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            try {
                p = db.Produtos.FirstOrDefault(x => x.nome.Equals(p.nome));
                return p;
            } catch{
                return null;
            }
        }

        public static Produto ConsultaCodigo(Produto p)
        {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            try
            {
                p = db.Produtos.FirstOrDefault(x => x.Id == p.Id);
                return p;
            }
            catch
            {
                return null;
            }
        }

        public static Produto getCodigo() {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            Produto p = new Produto();

            try
            {
                p = db.Produtos.ToList().LastOrDefault();
                return p;
            }
            catch
            {
                return null;
            }


        }
        

        public static List<Produto> getAll() {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            List<Produto> p = db.Produtos.ToList();
            return p;
        }

        public static Produto ConsultaProduto()
        {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            Produto p = new Produto();

            try
            {
                p = db.Produtos.FirstOrDefault();
                return p;
            }
            catch
            {
                return null;
            }
        }


        public static Produto EditaProduto(Produto p)
        {
            VarejoEntities db = SingletonObjectContext.Instance.Context;
            try
            {


                Produto produto = db.Produtos.FirstOrDefault(x => x.Id == p.Id);
                produto.Id = p.Id;
                produto.nome = p.nome;
                produto.valor = p.valor;
                produto.quantidade = p.quantidade;
                produto.descricao = p.descricao;

                //db.Entry(p).State = EntityState.Modified;
                db.SaveChanges();
                
                return p;
            }
            catch
            {
                return null;
            }
        }



    }
}
